package com.owen.l7;

/**
 * 给出一个 32 位的有符号整数，你需要将这个整数中每位上的数字进行反转。
 *
 * 
 *
 * 注意：
 *
 * 假设我们的环境只能存储得下 32 位的有符号整数，则其数值范围为[−231, 231− 1]。请根据这个假设，如果反转后整数溢出那么就返回 0。
 * 
 *
 * 示例 1：
 *
 * 输入：x = 123
 * 输出：321
 * 示例 2：
 *
 * 输入：x = -123
 * 输出：-321
 * 示例 3：
 *
 * 输入：x = 120
 * 输出：21
 * 示例 4：
 *
 * 输入：x = 0
 * 输出：0
 * 
 *
 * 提示：
 *
 * -231 <= x <= 231 - 1
 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/reverse-integer
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */
public class MySolution1 {
    public int reverse(int x) {
        int result=0;
        while (x!=0){
            int remainder=x%10;
            x=x/10;
            if (result > Integer.MAX_VALUE/10 || (result == Integer.MAX_VALUE / 10 && remainder > 7)) {
                return 0;
            }
            if (result < Integer.MIN_VALUE/10 || (result == Integer.MIN_VALUE / 10 && remainder < -8)) {
                return 0;
            }
            result=result*10+remainder;
        }
        return result;
    }

    public static void main(String[] args) {
        int aacabdkacaa = new MySolution1().reverse(1534236469);
        System.out.println(aacabdkacaa);
    }
}
